function DualChannelSpheres_gpu(file, seconds)
    if nargin < 2, seconds = 0; end
    if seconds == 0
        [wav, Fs] = wavread(file);      % data= y, sampling freq = Fs
    else
        [wav, Fs] = wavread(file,[1 44100*seconds]);      % data= y, sampling freq = Fs
    end

lenY = length(wav);
gfigure;gclf;
timeSkip = 350/44100;
numSeconds = 0;
t = (1:length(wav))/Fs;         % time

a = size(wav);
lengthSong = a(1)/Fs;
player = audioplayer(wav,Fs);
myt = tic;
play(player);
n = 16;
[x,y,z] = sphere(n);

while numSeconds<lengthSong
    tic;
    numSeconds = toc(myt);
    n = 100; % ceil(rand*16);    
    indnew = [ceil((numSeconds-timeSkip)*44100) ceil((numSeconds+timeSkip)*44100)];
    
    if (indnew(1) <= 0)
        indnew(1) = 1;
    end
    if (indnew(2) >= lenY)
        indnew(2)= lenY
    end
    ind = [indnew(1):indnew(end)];
    if length(ind) == 0
        break;
    end
    
    num =  abs(mean(wav(ind,1)))*100+5;
    num2 = abs(mean(wav(ind,2)))*100+5;

    %num2 = 0;
    %num = 0;



% x = x + 2;
% y = y + 2;
% z = z + 2;


% x = gsingle(x);
% y = gsingle(y);
% z = gsingle(z);


X = [x(:)*num];
Y = [y(:)*num];
Z = [z(:)*num];
limits = 8;
X = [X;-1*limits;1*limits];
Y = [Y;-1*limits;1*limits];
Z = [Z;-1*limits;1*limits];

% X = X+3;
% Y = Y+3;
% Z = Z+3;

%X(18,:) = 10*ones(1,3);
%Y(18,:) = 10*ones(1,3);
%Z(18,:) = 10*ones(1,3);

X2 = [x(:)*num2];
Y2 = [y(:)*num2 ];
Z2 = [z(:)*num2];
X2 = [X2;-1*limits;1*limits];
Y2 = [Y2;-1*limits;1*limits];
Z2 = [Z2;-1*limits;1*limits];
X = gsingle(X);
Y = gsingle(Y);
Z = gsingle(Z);

X2 = gsingle(X2);
Y2 = gsingle(Y2);
Z2 = gsingle(Z2);

gsubplot(1,2,1)
scatter3(X(:),Y(:),Z(:))
% ghold_on
% scatter3([-10 10],[-10 10],[-10 10])
% ghold_off
gsubplot(1,2,2)

scatter3(X2(:),Y2(:),Z2(:))
toc
pause(.05)
end